package collection01;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 集合中的移除功能
 *  boolean remove(Object o)
 *           从集合中移除指定的元素,如果移除成功就返回true,否则返回false
 *           remove()方法依据集合中元素的equals()方法去比较,如果两个元素调用equals()方法返回true,说明存在元素,可以移除,最终remove返回true
 *                     如果集合中所有元素调用equals()与被移除元素比教,都返回false,集合中不存在该元素,移除失败,remove方法返回false
 *          Person p1 = new Person("乔峰", 30);
 *         Person p2 = new Person("阿朱", 20);
 *         c.add(p1);
 *         c.add(p2);
 *
 *         Person p3 = new Person("乔峰", 30);
 *
 *         System.out.println(c.remove(p3));//首先跟p1比较,p1.equals(p3),如果调用Object类中的equals()方法默认比较内存地址值,p1和p3不同,equals()
 *                                        //方法返回false;
 *                                        //在与p2比较 p2.equals(p3),如果调用Object类中的equals()方法默认比较内存地址值,p2和p3不同,equals()
 *                                         //方法返回false;
 *                                          //所有元素都与p3不同,最终remove()返回false
 *       int[] arr={15,19,21};
 *       移除19
 *       移除16
 */
public class CollectionDemo03 {
    public static void main(String[] args) {
        //method01();
        Collection c = new ArrayList();
        Person p1 = new Person("乔峰", 30);
        Person p2 = new Person("阿朱", 20);
        c.add(p1);
        c.add(p2);

        Person p3 = new Person("乔峰", 30);

        System.out.println(c.remove(p3));
        System.out.println(c);

    }

    private static void method01() {
        Collection c = new ArrayList();
        c.add("abc");
        c.add("def");

        System.out.println(c);//[abc, def]

        System.out.println(c.remove("def"));//true

        System.out.println(c);//[abc]

        System.out.println(c.remove("hk"));//false
    }
}
